#ifndef DRAWING_TEXTURE_H
#define DRAWING_TEXTURE_H

#include <string>

namespace drawing {

	class Texture
	{
	public:
		Texture( std::string m_fileName, int width, int height, bool transparent );
		Texture( const Texture& other );
		Texture& operator=( const Texture& other );

		inline std::string GetFilename() const { return m_filename; }
		inline int GetWidth() const { return m_width; }
		inline int GetHeight() const { return m_height; }

		inline int GetId() const { return m_id; }
		inline void SetId( int id ) { m_id = id; }

		inline bool IsTransparent() const { return m_transparent; }
		inline void SetTransparent( bool transparent ) { m_transparent = transparent; }

	private:
		std::string m_filename;
		int m_id;
		int m_width;
		int m_height;
		bool m_transparent;
	};

	inline bool operator == ( const Texture& a, const Texture& b ) {
		return
			a.GetFilename() == b.GetFilename() &&
			a.GetWidth() == b.GetWidth() &&
			a.GetHeight() == b.GetHeight() &&
			a.IsTransparent() == b.IsTransparent() &&
			a.GetId() == b.GetId();
	}

	inline bool operator != ( const Texture& a, const Texture& b ) {
		return !( a == b );
	}
}

#endif // DRAWING_TEXTURE_H
